/**Die KLasse SucheNachReservierendeMedium
 * implementiert die Recherche ueber  die Exemplare 
von verschiedenen Medien, die ausgeliehen wuerden
 * 
 * Datei: SuchenAusgeliehendenMedium.java
 * Datum : 04.12.2011
 * version: 0.1
 * Autor : Gregory Keussi
 */
package suche;

import java.util.ArrayList;
import java.util.List;

import medienverwaltung.Aufsatz;
import medienverwaltung.Buch;
import medienverwaltung.Datentraeger;
import medienverwaltung.Ebook;
import medienverwaltung.Hoerbuch;
import medienverwaltung.Medium;
import medienverwaltung.Zeitschrift;
import personenverwaltung.Ausleihe;

/**
 * @author Gregory Keussi Datei SuchenReservierendMedium.java Datum
 *         21.11.2011 version 0.1
 * 
 */
public class SuchenAusgeliehendeMedium
{
  private List<Ausleihe> myAusleiheList = new ArrayList<Ausleihe> ();

  public List<Medium> myNeueMedListe = new ArrayList<Medium> ();
  private List<Ausleihe> ausAufListe = new ArrayList<Ausleihe> ();
  private List<Ausleihe> ausBucListe = new ArrayList<Ausleihe> ();
  private List<Ausleihe> ausDatListe = new ArrayList<Ausleihe> ();
  private List<Ausleihe> ausEboListe = new ArrayList<Ausleihe> ();
  private List<Ausleihe> ausHoerListe = new ArrayList<Ausleihe> ();
  private List<Ausleihe> ausZeitListe = new ArrayList<Ausleihe> ();


  /*
   * Die Implementierung der parameterlos Konstruktor der Klasse.
   */

  public SuchenAusgeliehendeMedium ()
  {
    myAusleiheList = null;

  }


  public List<Ausleihe> gibMyAusleiheList ()
  {

    return myAusleiheList;
  }


  public void setzeMyAusleiheList (List<Ausleihe> myAusleiheList)
  {
    this.myAusleiheList = myAusleiheList;
  }


  public void ausleiheSortierung ()
  {

    for (Ausleihe ausleihe : myAusleiheList)
    {

      if (ausleihe.gibExemplar ().gibMedium () instanceof Buch)
      {

        myNeueMedListe.add (ausleihe.gibExemplar ().gibMedium ());
        ausAufListe.add (ausleihe);

      }
      if (ausleihe.gibExemplar ().gibMedium () instanceof Aufsatz)
      {

        myNeueMedListe.add (ausleihe.gibExemplar ().gibMedium ());
        ausAufListe.add (ausleihe);

      }
      if (ausleihe.gibExemplar ().gibMedium () instanceof Zeitschrift)
      {

        myNeueMedListe.add (ausleihe.gibExemplar ().gibMedium ());
        ausZeitListe.add (ausleihe);

      }

      if (ausleihe.gibExemplar ().gibMedium () instanceof Ebook)
      {
        myNeueMedListe.add (ausleihe.gibExemplar ().gibMedium ());
        ausAufListe.add (ausleihe);

      }

      if (ausleihe.gibExemplar ().gibMedium () instanceof Hoerbuch)
      {

        myNeueMedListe.add (ausleihe.gibExemplar ().gibMedium ());
        ausHoerListe.add (ausleihe);

      }

      if (ausleihe.gibExemplar ().gibMedium () instanceof Datentraeger)
      {

        myNeueMedListe.add (ausleihe.gibExemplar ().gibMedium ());
        ausDatListe.add (ausleihe);

      }

    }

  }


  public List<Ausleihe> verteiler2 (int i)
  {
    List<Ausleihe> l = new ArrayList<Ausleihe> ();
    switch (i)
    {

    /*
     * Die Methode liefert eineSortierte Liste von Aufsatz, die
     * ausgeliehenen sind
     */
    case 0:
      l = ausAufListe;

      break;

    /*
     * Die case 1 liefert eine sortierte Liste von allen Buchexemplaren,
     * die ausgeliehenen sind
     */
    case 1:
      l = ausBucListe;
      break;

    /*
     * Die case 2 liefert eine sortierte Liste von allen
     * Datentraegerxemplaren, die ausgeliehenen sind
     */
    case 2:
      l = ausDatListe;
      break;

    /*
     * Die case 3 liefert eine sortierte Liste von allen
     * Ebookexemplaren, die ausgeliehenen sind
     */

    case 3:
      l = ausEboListe;
      break;

    /*
     * Die case 4 liefert eine sortierte Liste von allen
     * Hoerbuchexemplaren, die ausgeliehenen sind
     */
    case 4:
      l = ausHoerListe;

      break;

    /*
     * Die case 5 liefert eine sortierte Liste von allen
     * Zeitschriftexemplaren, dieausgeliehenen sind
     */

    case 5:
      l = ausZeitListe;
      break;

    default:
      break;

    }

    return l;
  }
}